package com.ruoyi.ai.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.annotation.Translation;
import com.ruoyi.common.constant.TransConstant;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;

import java.io.Serializable;

/**
 * 微信用户视图对象 wx_user
 *
 * @author ruoyi
 * @date 2024-04-03
 */
@Data
@ExcelIgnoreUnannotated
public class WxUserVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 微信用户id
     */
    @ExcelProperty(value = "微信用户id")
    private Long wxUserId;

    /**
     * appId
     */
    @ExcelProperty(value = "appId")
    private String appId;

    /**
     * openid
     */
    @ExcelProperty(value = "openid")
    private String openid;

    /**
     * unionid
     */
    @ExcelProperty(value = "unionid")
    private String unionid;

    /**
     * 昵称
     */
    @ExcelProperty(value = "昵称")
    private String nickname;

    /**
     * 头像
     */
    @ExcelProperty(value = "头像")
    private String avatar;

    /**
     * 手机号
     */
    @ExcelProperty(value = "手机号")
    private String phone;

    /**
     * 微信号
     */
    @ExcelProperty(value = "微信号")
    private String wxNo;

    /**
     * 注册时间
     */
    @ExcelProperty(value = "注册时间")
    private Date registerTime;

    /**
     * 状态
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "wx_status")
    private Integer status;

    /**
     * AI聊天次数
     */
    @ExcelProperty(value = "AI聊天剩余次数")
    private Integer chatNum;

    /**
     * 图片转文字次数
     */
    @ExcelProperty(value = "图片转文字剩余次数")
    private Integer ocrNum;

    /**
     * 语音转文字次数
     */
    @ExcelProperty(value = "语音转文字剩余次数")
    private Integer voiceNum;

    /**
     * 会员状态
     */
    @ExcelProperty(value = "会员状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "ai_member_status")
    private Integer memberStatus;

    /**
     * 会员等级id
     */
    @ExcelProperty(value = "会员等级id")
    private Long memberGradeId;

    /**
     * 会员等级名称
     */
    @Translation(type = TransConstant.MEMBER_GRADE_TO_NAME,mapper = "memberGradeId")
    private String memberGradeName;


}
